package capaDatos;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import capaLogica.Ciudad;


public class CiudadDAO {
	
	/**
	 * Atributo que crea la conexion a la bd
	 */
	private Connection conn;
	
	/**
	 * Constructor de la clase
	 */
	public CiudadDAO(){
		conn = (Connection) ConnectionManager.getInstance().checkOut();
	}
	
	@Override
	 protected void finalize() {
       ConnectionManager.getInstance().checkIn(conn);
	}
	 
	 public List<Ciudad> recuperarTodas() {
	        PreparedStatement stmt = null;
	        ResultSet result = null;
	        List<Ciudad> p1 = null;
	        String sql = "SELECT * FROM ciudad";

	        try {
	            stmt = conn.prepareStatement(sql);
	            result = stmt.executeQuery();
	            p1 = new ArrayList<Ciudad>();
	            while( result.next() ){
	            	Ciudad p = new Ciudad();
		            p.setIdCiudad(result.getString("idCiudad"));
		            p1.add(p);
	            }
	            
	        } catch (SQLException e) {
	            System.out.println("Message: " + e.getMessage());
	            System.out.println("SQLState: " + e.getSQLState());
	            System.out.println("ErrorCode: " + e.getErrorCode());
	        } finally {
	            try {
	                if (result != null) {
	                    result.close();
	                }
	                if (stmt != null) {
	                    stmt.close();
	                }
	            } catch (SQLException e) {
	            }
	        }
	        return p1;
	    }
}
